package com.ruoyi.apartments.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 综合公寓管理对象 apartments
 * 
 * @author ruoyi
 * @date 2024-10-06
 */
public class Apartments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 公寓ID */
    @Excel(name = "公寓ID")
    private Long apartmentId;

    /** 楼号 */
    @Excel(name = "楼号")
    private Long buildingNumber;

    /** 单元号 */
    @Excel(name = "单元号")
    private Long unitNumber;

    /** 楼层 */
    @Excel(name = "楼层")
    private Long floor;

    /** 面积（平方英尺） */
    @Excel(name = "面积", readConverterExp = "平=方英尺")
    private Long squareFeet;

    /** 卧室数量 */
    @Excel(name = "卧室数量")
    private Long bedrooms;

    /** 浴室数量 */
    @Excel(name = "浴室数量")
    private Long bathrooms;

    /** 租金金额 */
    @Excel(name = "租金金额")
    private BigDecimal rentAmount;

    /** 是否可用 */
    @Excel(name = "是否可用")
    private Integer available;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId;

    /** 租户名字 */
    @Excel(name = "租户名字")
    private String tenantFirstName;

    /** 租户姓氏 */
    @Excel(name = "租户姓氏")
    private String tenantLastName;

    /** 租户电子邮件 */
    @Excel(name = "租户电子邮件")
    private String tenantEmail;

    /** 租户电话号码 */
    @Excel(name = "租户电话号码")
    private String tenantPhone;

    /** 租户出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租户出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date tenantDob;

    /** 租户紧急联系人姓名 */
    @Excel(name = "租户紧急联系人姓名")
    private String tenantEmergencyContactName;

    /** 租户紧急联系人电话 */
    @Excel(name = "租户紧急联系人电话")
    private String tenantEmergencyContactPhone;

    /** 租赁开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租赁开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaseStartDate;

    /** 租赁结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租赁结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaseEndDate;

    /** 租赁金额 */
    @Excel(name = "租赁金额")
    private BigDecimal leaseAmount;

    /** 支付ID */
    @Excel(name = "支付ID")
    private Long paymentId;

    /** 支付日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentDate;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private BigDecimal paymentAmount;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String paymentMethod;

    /** 维修请求ID */
    @Excel(name = "维修请求ID")
    private Long maintenanceRequestId;

    /** 维修请求日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维修请求日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceRequestDate;

    /** 维修问题描述 */
    @Excel(name = "维修问题描述")
    private String maintenanceIssueDescription;

    /** 维修状态 */
    @Excel(name = "维修状态")
    private String maintenanceStatus;

    /** 维修完成日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维修完成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceCompletionDate;

    public void setApartmentId(Long apartmentId) 
    {
        this.apartmentId = apartmentId;
    }

    public Long getApartmentId() 
    {
        return apartmentId;
    }
    public void setBuildingNumber(Long buildingNumber) 
    {
        this.buildingNumber = buildingNumber;
    }

    public Long getBuildingNumber() 
    {
        return buildingNumber;
    }
    public void setUnitNumber(Long unitNumber) 
    {
        this.unitNumber = unitNumber;
    }

    public Long getUnitNumber() 
    {
        return unitNumber;
    }
    public void setFloor(Long floor) 
    {
        this.floor = floor;
    }

    public Long getFloor() 
    {
        return floor;
    }
    public void setSquareFeet(Long squareFeet) 
    {
        this.squareFeet = squareFeet;
    }

    public Long getSquareFeet() 
    {
        return squareFeet;
    }
    public void setBedrooms(Long bedrooms) 
    {
        this.bedrooms = bedrooms;
    }

    public Long getBedrooms() 
    {
        return bedrooms;
    }
    public void setBathrooms(Long bathrooms) 
    {
        this.bathrooms = bathrooms;
    }

    public Long getBathrooms() 
    {
        return bathrooms;
    }
    public void setRentAmount(BigDecimal rentAmount) 
    {
        this.rentAmount = rentAmount;
    }

    public BigDecimal getRentAmount() 
    {
        return rentAmount;
    }
    public void setAvailable(Integer available) 
    {
        this.available = available;
    }

    public Integer getAvailable() 
    {
        return available;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }
    public void setTenantFirstName(String tenantFirstName) 
    {
        this.tenantFirstName = tenantFirstName;
    }

    public String getTenantFirstName() 
    {
        return tenantFirstName;
    }
    public void setTenantLastName(String tenantLastName) 
    {
        this.tenantLastName = tenantLastName;
    }

    public String getTenantLastName() 
    {
        return tenantLastName;
    }
    public void setTenantEmail(String tenantEmail) 
    {
        this.tenantEmail = tenantEmail;
    }

    public String getTenantEmail() 
    {
        return tenantEmail;
    }
    public void setTenantPhone(String tenantPhone) 
    {
        this.tenantPhone = tenantPhone;
    }

    public String getTenantPhone() 
    {
        return tenantPhone;
    }
    public void setTenantDob(Date tenantDob) 
    {
        this.tenantDob = tenantDob;
    }

    public Date getTenantDob() 
    {
        return tenantDob;
    }
    public void setTenantEmergencyContactName(String tenantEmergencyContactName) 
    {
        this.tenantEmergencyContactName = tenantEmergencyContactName;
    }

    public String getTenantEmergencyContactName() 
    {
        return tenantEmergencyContactName;
    }
    public void setTenantEmergencyContactPhone(String tenantEmergencyContactPhone) 
    {
        this.tenantEmergencyContactPhone = tenantEmergencyContactPhone;
    }

    public String getTenantEmergencyContactPhone() 
    {
        return tenantEmergencyContactPhone;
    }
    public void setLeaseStartDate(Date leaseStartDate) 
    {
        this.leaseStartDate = leaseStartDate;
    }

    public Date getLeaseStartDate() 
    {
        return leaseStartDate;
    }
    public void setLeaseEndDate(Date leaseEndDate) 
    {
        this.leaseEndDate = leaseEndDate;
    }

    public Date getLeaseEndDate() 
    {
        return leaseEndDate;
    }
    public void setLeaseAmount(BigDecimal leaseAmount) 
    {
        this.leaseAmount = leaseAmount;
    }

    public BigDecimal getLeaseAmount() 
    {
        return leaseAmount;
    }
    public void setPaymentId(Long paymentId) 
    {
        this.paymentId = paymentId;
    }

    public Long getPaymentId() 
    {
        return paymentId;
    }
    public void setPaymentDate(Date paymentDate) 
    {
        this.paymentDate = paymentDate;
    }

    public Date getPaymentDate() 
    {
        return paymentDate;
    }
    public void setPaymentAmount(BigDecimal paymentAmount) 
    {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getPaymentAmount() 
    {
        return paymentAmount;
    }
    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }
    public void setMaintenanceRequestId(Long maintenanceRequestId) 
    {
        this.maintenanceRequestId = maintenanceRequestId;
    }

    public Long getMaintenanceRequestId() 
    {
        return maintenanceRequestId;
    }
    public void setMaintenanceRequestDate(Date maintenanceRequestDate) 
    {
        this.maintenanceRequestDate = maintenanceRequestDate;
    }

    public Date getMaintenanceRequestDate() 
    {
        return maintenanceRequestDate;
    }
    public void setMaintenanceIssueDescription(String maintenanceIssueDescription) 
    {
        this.maintenanceIssueDescription = maintenanceIssueDescription;
    }

    public String getMaintenanceIssueDescription() 
    {
        return maintenanceIssueDescription;
    }
    public void setMaintenanceStatus(String maintenanceStatus) 
    {
        this.maintenanceStatus = maintenanceStatus;
    }

    public String getMaintenanceStatus() 
    {
        return maintenanceStatus;
    }
    public void setMaintenanceCompletionDate(Date maintenanceCompletionDate) 
    {
        this.maintenanceCompletionDate = maintenanceCompletionDate;
    }

    public Date getMaintenanceCompletionDate() 
    {
        return maintenanceCompletionDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("apartmentId", getApartmentId())
            .append("buildingNumber", getBuildingNumber())
            .append("unitNumber", getUnitNumber())
            .append("floor", getFloor())
            .append("squareFeet", getSquareFeet())
            .append("bedrooms", getBedrooms())
            .append("bathrooms", getBathrooms())
            .append("rentAmount", getRentAmount())
            .append("available", getAvailable())
            .append("tenantId", getTenantId())
            .append("tenantFirstName", getTenantFirstName())
            .append("tenantLastName", getTenantLastName())
            .append("tenantEmail", getTenantEmail())
            .append("tenantPhone", getTenantPhone())
            .append("tenantDob", getTenantDob())
            .append("tenantEmergencyContactName", getTenantEmergencyContactName())
            .append("tenantEmergencyContactPhone", getTenantEmergencyContactPhone())
            .append("leaseStartDate", getLeaseStartDate())
            .append("leaseEndDate", getLeaseEndDate())
            .append("leaseAmount", getLeaseAmount())
            .append("paymentId", getPaymentId())
            .append("paymentDate", getPaymentDate())
            .append("paymentAmount", getPaymentAmount())
            .append("paymentMethod", getPaymentMethod())
            .append("maintenanceRequestId", getMaintenanceRequestId())
            .append("maintenanceRequestDate", getMaintenanceRequestDate())
            .append("maintenanceIssueDescription", getMaintenanceIssueDescription())
            .append("maintenanceStatus", getMaintenanceStatus())
            .append("maintenanceCompletionDate", getMaintenanceCompletionDate())
            .toString();
    }
}
